#I Import and Initialize
import os, pygame

#E Entities
data_py     = os.path.abspath(os.path.dirname(__file__))
data_dir    = os.path.normpath(os.path.join(data_py, '..', 'data'))

#A Action
#############################################################################
# Returns a full file path.
#############################################################################
def filepath(filename):
    return os.path.join(data_dir, filename)

#############################################################################
# Opens a given file.
#############################################################################
def load(filename, mode='rb'):
    return open(os.path.join(data_dir, filename), mode)

#############################################################################
# Loads a given image.
#############################################################################
def loadImage( filename ):
    filename = filepath(filename)

    try:
        image = pygame.image.load( filename )
    except pygame.error, message:
        print "Cannot load image:", filename
        raise SystemExit, message
    return image.convert_alpha()

#############################################################################
# Loads a given sound file into a pygame.mixer.Sound object.
#############################################################################
def load_sound(name):
    class NoneSound:
        def play(self): pass
    if not pygame.mixer:
        return NoneSound()
    fullname = os.path.join('data', name)
    try:
        sound = pygame.mixer.Sound(fullname)
    except pygame.error, message:
        print 'Cannot load sound:', wav
        raise SystemExit, message
    return sound